package com.bazhua.bazo.common.utils;

import com.auth0.jwt.JWT;
import com.auth0.jwt.exceptions.JWTDecodeException;

/**
 * @Author: starmile
 * @Description:
 * @Create: 2021-01-24 0:08
 **/
public class JwtUtil {

    /**
     * 根据Token获取userId(注意坑点 : 就算token不正确，也有可能解密出wxOpenId,同下)
     */
    public static Long getUserIdByToken(String token) throws JWTDecodeException {
        return JWT.decode(token).getClaim("userId").asLong();
    }

    /**
     * 根据Token获取wxOpenId(注意坑点 : 就算token不正确，也有可能解密出wxOpenId,同下)
     */
    public static String getWxOpenIdByToken(String token) throws JWTDecodeException {
        return JWT.decode(token).getClaim("wxOpenId").asString();
    }

    /**
     * 根据Token获取sessionKey
     */
    public static String getSessionKeyByToken(String token) throws JWTDecodeException {
        return JWT.decode(token).getClaim("sessionKey").asString();
    }

    /**
     * 根据Token 获取jwt-id
     */
    private static String getJwtIdByToken(String token) throws JWTDecodeException {
        return JWT.decode(token).getClaim("jwt-id").asString();
    }
}
